TableLayout ( 表格布局 ) |
您所在的位置:网站首页 › android 下面三个按钮 › TableLayout ( 表格布局 ) |
TableLayout 是一种可以制作表格的布局,它和 GridLayout 的区别是 GridLayout 只能制定每一列宽度一样的表格布局,而 TableLayout 能够制定各列宽度不一样的表格布局 TableLayout 的主要属性 属性 说明 android:collapseColumns 设置需要 被隐藏 的列的序号 android:shrinkColumns 设置允许 被收缩 的列的列序号 android:stretchColumns 设置运行 被拉伸 的列的列序号这三个属性的列号都是 从0开始算 的,比如 shrinkColunmns = "2" 对应的是第三列 可以 设置多个 ,用 逗号(,)隔开 比如"0,2", 如果是所有列 都生效 ,则 用"*"号 TableLayout 里面的子控件可以为 TableRow 或者其它 View,但是其子控件的 android:layout_width 属性被系统固定为 match_parent TableLayout 里面所有行中某一列的宽度的最大值是这一列的宽度 还有两个属性,分别就是跳过格子以及合并单元格 属性 说明 android:layout_column="2" 表示的就是 跳过 第二个,直接显示到第三个格子处,从1开始算的 android:layout_span="4" 表示 合并 4个单元格,也就说这个组件占4个单元格 TableRow 子控件的主要属性 属性 说明 android:layout_column="1" 该控件显示在第1列 android:layout_span="2" 该控件占据2列 TableLayout 中的行数与列数如果我们往 TableLayout 中添加组件的话,那么这个组件将占满一行 如果要在一行上添加多个组件,就要添加一个 TableRow 的容器,把组件都丢到里面 TableRow 中的组件个数就决定了该行有多少列,而列的宽度由该列中最宽的单元格决定 TableRow layout_width 属性,默认是 fill_parent 的,设置成其它的值也不会生效 但是 layout_height 默认是 wrapten-content 的,可以自己设置大小 整个表格布局的宽度取决于父容器的宽度(占满父容器本身) 有多少行就要自己数啦,一个tablerow一行,一个单独的组件也一行!多少列则是看 TableRow 中 的组件个数,组件最多的就是 TableLayout 的列数 范例首先创建一个 空的 Android 项目 cn.twle.android.TableLayout 然后修改 activity_main.xml 为 TableLayout 并添加 5 个按钮 运行范例,显示结果如下 android: collapseColumns 隐藏列然后修改最外层的 TableLayout 添加以下属性来隐藏第一与第三列 android:collapseColumns = "0,2"修改 activity_main.xml 为以下内容 android:stretchColumns 拉伸列在 TableLayout 中设置了四个按钮 修改 activity_main.xml 为以下内容 接着在最外层的 TableLayout 中添加以下属性设置第二列克拉伸,那么该列就会填满所有剩余的空间 android:stretchColumns = "1"修改 activity_main.xml 为以下内容 android:shrinkColumns 收缩列在 TableLayout 中设置了 5 个按钮和一个文本框 修改 activity_main.xml 为以下内容 然后在最外层的 TableLayout 中添加以下属性设置第二列为可收缩列 android:shrinkColumns = "1"修改 activity_main.xml 添加 android:shrinkColumns = "1" 对前后两张图我们可以看到 二 这个按钮被挤压成了条状,这就是收缩,是为了保证表格能适应 父容器的宽度 TableLayout 布局登录界面为了实现 APP 的登录功能,我们可能会拿到 UI 设计师的下面这样的 UI ,这个 UI 布局可以用任何一个布局来完成,但我们这里使用 TableLayout 来完成吧 我们先来分析下这个 UI 使用 TableLayout 布局,这就是一个三行四列的表格 为什么不是三行两列?只用 TableLayout 布局的话没法处理左右两边对称的空白 登录界面距离屏幕顶端 100dp ,可以设置 android:layout_marginTop="100dp" 整个登录内容在屏幕上是垂直居中的,所以要给 TableLayout 设置属性 android:gravity="center_vertical" 让布局里面的组件在竖直方向上居中 为了保证不同的屏幕下左右两边的空白一样多,就要设置第一列和第四列为可拉伸 android:stretchColumns="0,3" 因为 TableLayout 是以自控件数量来定义列数的,所以一定要在第一列和第四列填充一些空白组件,只有 能胜任了 分析完成后的效果图如下 编码修改我们的 TableLayout 项目中的 activity_main.xml 为以下内容 activity_main.xml运行范例,显示如下 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |